import { getProList } from "../../api/home";
// 在页面或组件外部定义timer
let timer = null; //防抖
// 节流
// 在页面外部定义上次执行时间变量
let lastTime = 0;
const delay = 200; // 节流间隔时间
// pages/home/home.js
Page({
  //防抖-多次执行的时候每隔一段时间执行一次

  //节流——多次执行的时候只执行一次

  /**
   * 页面的初始数据
   */
  data: {
    proList: [],
    // 数据页数
    count: 1,
    // 滚动条位置
    scrollTop: 0,
  },
  // 获取轮播图数据
  async getProListFn(mycount) {
    const res = await getProList({ count: mycount });
    // console.log(res);
    if (res.data.length > 0) {
      this.setData({
        proList: [...this.data.proList, ...res.data],
        count: this.data.count + 1,
      });
    } else {
      wx.showToast({
        title: "没有更多数据了哦亲",
      });
    }
  },
  // 返回顶部
  goToTopClick() {
    wx.pageScrollTo({
      scrollTop: 0,
      duration: 300,
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getProListFn(this.data.count);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // console.log("触底了11");

    this.getProListFn(this.data.count);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
  // 监听页面滚动
  onPageScroll(e) {
    // 清除之前的定时器
    if (timer) clearTimeout(timer);
    // 设置新的定时器，每200ms内，未滚动则执行一次setData
    timer = setTimeout(() => {
      // console.log("滚动了");
      // 防抖
      this.setData({
        scrollTop: e.scrollTop,
      });
    }, 200);
    // console.log('123456');
    // const now = Date.now(); // 获取当前时间戳
    // // 判断是否超过节流间隔时间
    // if (now - lastTime > delay) {
    //   console.log("滚动了");
    //   lastTime = now; // 更新上次执行时间
    //   this.setData({
    //     scrollTop: e.scrollTop,
    //   });
    // }
  },
});
